package com.zf.yichat.model;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;

@Table(name = "message_collection")
public class MessageCollection implements Serializable {


    // 视频类型
    public static final String TYPE_VIDEO = "3";
    // 文件类型
    public static final String TYPE_FILE = "4";

    /**
     *  消息 ID
     */
    @Id
    private Integer id;

    @Column(name = "user_id")
    private Long userId;

    @Column(name = "friend_user_id")
    private Long friendUserId;

    /**
     *  消息类型(0 文字，1 图片，2 音频，3 视频，4 文件) 
     */
    private String type;

    /**
     * 类型为3时 缩略图链接  
     */
    private String thumbnail;

    /**
     * 类型为0时存储文字， 类型为1 2 3 4时存储文件路径
     */
    private String content;

    /**
     *  类型为4时 文件名 
     */
    private String filename;

    /**
     * 收藏时间
     */
    @Column(name = "collection_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date collectionTime;

    private static final long serialVersionUID = 1L;

    public MessageCollection(Integer id,Long userId, Long friendUserId,String type, String thumbnail,
                             String content, String filename,
                             Date collectionTime) {
        this.id = id;
        this.userId = userId;
        this.friendUserId = friendUserId;
        this.type = type;
        this.thumbnail = thumbnail;
        this.content = content;
        this.filename = filename;
        this.collectionTime = collectionTime;
    }

    public MessageCollection() {
        super();
    }

    /**
     * 获取 消息 ID
     *
     * @return id -  消息 ID
     */
    public Integer getId() {
        return id;
    }

    /**
     * 设置 消息 ID
     *
     * @param id  消息 ID
     */
    public void setId(Integer id) {
        this.id = id;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getFriendUserId() {
        return friendUserId;
    }

    public void setFriendUserId(Long friendUserId) {
        this.friendUserId = friendUserId;
    }

    /**
     * 获取 消息类型(0 文字，1 图片，2 音频，3 视频，4 文件) 
     *
     * @return type -  消息类型(0 文字，1 图片，2 音频，3 视频，4 文件) 
     */
    public String getType() {
        return type;
    }

    /**
     * 设置 消息类型(0 文字，1 图片，2 音频，3 视频，4 文件) 
     *
     * @param type  消息类型(0 文字，1 图片，2 音频，3 视频，4 文件) 
     */
    public void setType(String type) {
        this.type = type == null ? null : type.trim();
    }

    /**
     * 获取类型为3时 缩略图链接  
     *
     * @return thumbnail - 类型为3时 缩略图链接  
     */
    public String getThumbnail() {
        return thumbnail;
    }

    /**
     * 设置类型为3时 缩略图链接  
     *
     * @param thumbnail 类型为3时 缩略图链接  
     */
    public void setThumbnail(String thumbnail) {
        this.thumbnail = thumbnail == null ? null : thumbnail.trim();
    }

    /**
     * 获取类型为0时存储文字， 类型为1 2 3 4时存储文件路径
     *
     * @return content - 类型为0时存储文字， 类型为1 2 3 4时存储文件路径
     */
    public String getContent() {
        return content;
    }

    /**
     * 设置类型为0时存储文字， 类型为1 2 3 4时存储文件路径
     *
     * @param content 类型为0时存储文字， 类型为1 2 3 4时存储文件路径
     */
    public void setContent(String content) {
        this.content = content == null ? null : content.trim();
    }

    /**
     * 获取 类型为4时 文件名 
     *
     * @return filename -  类型为4时 文件名 
     */
    public String getFilename() {
        return filename;
    }

    /**
     * 设置 类型为4时 文件名 
     *
     * @param filename  类型为4时 文件名 
     */
    public void setFilename(String filename) {
        this.filename = filename == null ? null : filename.trim();
    }

    /**
     * 获取收藏时间
     *
     * @return collection_time - 收藏时间
     */
    public Date getCollectionTime() {
        return collectionTime;
    }

    /**
     * 设置收藏时间
     *
     * @param collectionTime 收藏时间
     */
    public void setCollectionTime(Date collectionTime) {
        this.collectionTime = collectionTime;
    }
}